FIG. 1a is a high-level schematic block diagram showing a wireless transmitter 102 comprising a processor 103, a radio frequency (RF) front-end 104 coupled to the processor 103, and an antenna 105 coupled to the RF front-end 104. The transmitter 102 is arranged by means of these components to communicate wirelessly over an air interface with a base station 106 (node B in 3GPP terminology) of a wireless cellular network 101. The node B 106 is coupled via various upstream equipment 107 of the wireless cellular network 101 to a gateway 108, which in turn couples to another, packet-based network 109 such as the Internet.
There are a number of different ways to model a protocol stack for communicating over one or more networks. As shown schematically in FIG. 1a for instance, in the GSM model the protocol stack for communicating over a wireless cellular network 101 may be modelled broadly as comprising three basic layers, termed Layer 1 (L1), Layer 2 (L2) and Layer 3 (L3).
At the lowest hierarchical level is Layer 1 (or L1), which is the physical layer. The physical layer is the mechanism that handles the transmission and reception of data on the level of individual bits; or more generally, individual elementary symbols, e.g. in the case of quadrature or higher phase-shift keying. The physical layer is concerned with how to actually place a bit or symbol onto a transmission medium (in this case the air interface) and how to receive a bit or symbol from that medium. That is, the physical layer performs signal processing related to the physical properties of the transmission medium. For example, the physical layer may include equalisation or rake processing of received signals, at least part of the modulation and demodulation of the transmitted and received signals respectively, and/or spreading and despreading for code division multiple access (CDMA) communications.
The next hierarchical level is Layer 2 (or L2), which is the data link layer. This involves protocols for establishing and maintaining a wireless connection between transmitting and receiving nodes of the wireless cellular network, and the communication of meaningful data therebetween; e.g. formatting data into frames for wireless transmission and acknowledging receipt of data over the wireless connection. Notably, Layer 2 is concerned with end-to-end connection between two (or more) nodes of the wireless cellular network, whereas Layer 1 is only concerned with the immediate interface between the terminal and the physical transmission medium. Further, Layer 2 is concerned with the transmission and reception of meaningful data, whereas at Layer 1 the individual bits or symbols in themselves have no immediate meaning.
At the highest hierarchical level of the GSM/3GPP model, Layer 3 (or L3) provides higher level network management functions. These include mobility management, e.g. handover, paging, registration (i.e. functions relating to movement between cells). Layer 3 functions also include resource management, e.g. power control and other functions relating to allocation of resources. The Layer 3 functions further include call management.
Preferably, at least the Layers L2 and L3 are implemented in software running on the transmitter's processor 103. Using a soft modem and associated chipset produced by Icera Inc and sold under the trade name Livanto™, a substantial part of the physical layer L1 may advantageously also be implemented in software running on the processor 103. Alternatively however, more of the physical layer functionality may be implemented in dedicated hardware.
Note that the RF front-end 104 may actually be considered as being part of L1 —this is just a matter of how the stack is modelled. However, by way of a schematic example in the following, a substantially soft physical layer is assumed and for illustrative purposes the soft part of L1 is shown separately from the RF hardware front-end 104.
On top of the wireless layers L1 to L3 for handling access to the wireless cellular network 101 itself, there may be stacked additional layers for providing access to a packet-based network 109 such as the Internet via the wireless cellular network 101 and gateway 108. These include a session layer, a transport layer, and a network layer for the packet-based network 109 such as the IP layer.
Each layer is preferably implemented as a software module, and the layers may be modelled as being arranged in the form of a stack because each layer is arranged to communicate with two “adjacent” other layers. In this sense, the session layer is arranged between one or more user applications and the transport layer, the transport layer is arranged between the session layer and the IP layer, the IP layer is arranged between the transport layer and Layer 3 (L3), Layer 3 is arranged between the transport layer and Layer 2 (L2), Layer 2 is arranged between Layer 3 and Layer 1 (L1), and Layer 1 is arranged between Layer 2 and the wireless cellular network 101 via the RF front-end 104.
Referring to FIG. 1b, in operation the session layer receives user content (e.g. a media stream, file transfer, etc.) from a user application. The session layer is responsible for setting up and controlling the Internet session, or “context”. The session layer negotiates with the gateway 108 in order to set up the context, including exchanging information describing the session such as an identifier of the user, the user's IMSI (Internet Mobile Subscriber Identity), and information about the Internet gateway 108 to be used. The context may be for example a Packet Data Protocol (PDP) context or Evolved Packet System (EPS) bearer context.
The session layer supplies portions of the session information and user content to the transport layer. As will be familiar to a person skilled in the art, transport protocols include for example Transmission Control Protocol (TCP), Real-time Transport Protocol (RTP), and User Datagram protocol (UDP).
The TCP protocol involves an initial handshaking phase to establish a connection or “vertical circuit” between Internet end-points (this Internet connection being conceptually distinct from the wireless connection handled by Layer 2, being at a higher level of abstraction than the wireless connection but a lower level of abstraction than the session). There then follows a data transmission phase, then a connection termination phase to break the TCP connection.
During the data transmission phase, the session information and user content received from the session layer are placed into the payloads of a plurality of discrete TCP segments (the transport layer is not aware of the meaning of the session information or user content within the payloads). Each segment comprises a respective payload and also a respective TCP header added by the transport layer.
Each segment can carry both payload data in the payload and control information in the header. For example, an ACK flag can be set in the header of a TCP segment, in which case the same TCP segment can be used both to send a portion of data and acknowledge receipt of another previously received portion of data (identified by an acknowledgement number in the header). E.g. each of TCP the first and third segments in FIG. 2 could be either a pure data segment or a data segment with ACK. As another example, an URG flag can be set in the TCP header to indicate that the segment is urgent. Some segments may contain no payload, e.g. it is also possible for the TCP layer to generate a pure ACK segment comprising only an ACK header and no payload, as shown in the second TCP segment in FIG. 2. As will be familiar to a person skilled in the art, other flags that can be set in the header are CWR, ECE, PSH, RST, SYN and FIN. The TCP header can also add, for example, a packet number for re-ordering of out-of-order packets received at the recipient end, error correction codes, and a source and destination port number.
UDP is an alternative transport protocols, without the same degree of error detection and without end-to-end acknowledgement or handshaking, making it more suitable for use in applications where on-time delivery is more important that error rate or packet loss rate. RTP is a transport protocol specially designed for streaming audio and video media.
The TCP segments (or the units of another transport protocol such as RTP or UDP) are next passed from the transport layer to the IP layer, which adds a respective IP header to each segment in order to form a respective IP packet. That is, each IP packet comprises an IP header and an IP payload, the payload comprising the TCP segment. Amongst other information, the IP address contains a source and destination IP address for use in communicating the packet over the Internet 109.
IP layer does not see inside the IP payload, so does not see the TCP header or session information as being any different from the rest of the user content data. That is, the IP layer is not aware of the meaning of the user content, session information or TCP headers within the IP packet payloads.
The IP packets are then transferred through Layers L3 to L1, onto the wireless cellular network 101 via the RF front-end 104 and over the Internet 109 via the node B 106, network equipment 107 and gateway 108.
Note that there may be different ways of modelling a protocol stack. For example, the above describes a TCP/IP type model (an upper stack) stacked on top of a 3GPP/GSM type model (a lower stack), but the layers of the GSM/3GPP and TCP/IP models may not map directly to the layers of the OSI model. The exact manner in which the layers are divided or described in any given model is not important, but the underlying idea is that data is passed down through hierarchical layers for transmission, from higher levels of abstraction dealing with meaningful information, through layers dealing with network functions, transport protocols and packetisation, then down to a physical layer which transmits individual elementary symbols on the transmission medium.
In 3GPP the stack, the stack is sometimes alternatively modelled in terms of an “Access Stratum” comprising L1 and L2, and a “Non Access Stratum” comprising L3 plus higher layers.